package com.glut.campusrepair.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glut.campusrepair.dto.MaintenanceLongRecordsdto;
import com.glut.campusrepair.dto.MaintenanceRecordsdto;
import com.glut.campusrepair.dto.MaintenanceShortRecordsdto;
import com.glut.campusrepair.entity.MaintenanceRecordRequest;
import com.glut.campusrepair.entity.MaintenanceRecords;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 *  服务类接口
 *
 * @author QJC
 * @since 2024-07-21 17:24
 */
    public interface IMaintenanceRecordsService extends IService<MaintenanceRecords> {
    Page<MaintenanceRecords> querypages(MaintenanceRecordsdto maintenanceRecordsdto);

    void deletes(List<Integer> ids);

    void deleteuser(Integer mainmaintenanceRecordsId);

    void update(MaintenanceRecordsdto maintenanceRecordsdto);

    /**
     * 根据当前登录用户ID查询这个用户报修的所有未评价的简洁版维修记录
     * 展示在维修记录卡片中
     */
    List<MaintenanceShortRecordsdto> selectByUserNo_11(Integer userNo);

    /**
     * 根据当前登录用户ID查询这个用户报修的所有已评价的简洁版维修记录
     * 展示在维修记录卡片中
     */
    List<MaintenanceShortRecordsdto> selectByUserNo_12(Integer userNo);

    /**
     * 根据维修记录id查询详细版维修记录
     * @param maintenanceRecordsId
     * @return
     */
    MaintenanceLongRecordsdto selectByPrimaryKey_2(Integer maintenanceRecordsId);

    /**
     * 根据维修人员id获取维修记录
     * @param employeeId 员工id
     * @return 维修记录
     */
    List<MaintenanceRecords> getEmployeeRepairRecords(Integer employeeId);

    /**
     * 根据维修人员id获取当前维修人员正在维修的记录
     * @param employeeId 员工id
     * @return 正在维修记录
     */
    List<MaintenanceRecords> getNowEmployeeRepairRecords(Integer employeeId);

    /**
     * 根据维修人员id修改维修状态
     * @param employeeId 员工id
     * @return 修改好了维修记录
     */
    void upMainMaintenanceRecord(Integer employeeId);

    /**
     * 先查询出报修时间一样的维修记录和故障报修表对应插入对应一条维修记录
     * @param  maintenanceRecordRequest
     * @return
     */
    MaintenanceRecords getMaintenanceRecords(MaintenanceRecordRequest maintenanceRecordRequest);
}
